今天是鐵人賽的最後一天了,我們花點時間來看看這三十天我們都介紹了些什麼。 首先,我們介紹了一下 Kotlin Exposed 是怎樣的一個框架(Day 1) 然...
能夠存取資料庫了,有時我們可能會需要將資料庫的內容,以 API 的形式,傳輸給其他的開發者。 這時候,我們可以用到 Ktor 這個框架,來協助我們進行API S...
昨天我們提到了建立 connection pool 時所使用的套件 HikariCP 今天,我們來談談建立資料庫遷移時使用的套件 Flyway 什麼是資料庫遷移...
在資料庫連線中,如果連線數越來越多,在進行管理時常常會使用 connection pool 進行管理。 不過,在目前的 Kotlin Exposed 框架中,...
前面講了很多 Kotlin Exposed 框架使用的方式。 今天來講點觀念性的東西,談談 Exposed 框架內 DAO 和 DSL 的差異。 DAO 和 D...
上次我們成功的撰寫好了 isValidDate(),並且利用 mockk 框架,來製作了一個假 Clock 固定測試時的時間。 不過,這段測試有沒有更簡單的實作...
這次,需求單位又提出了一個新的想法:我們可不可以設計一個 API,允許用戶在 2021/12/31 23:59:59 之前才能參加該活動。之後的用戶都不允許參...
回到我們的目標 我們希望能測試 updateUsersTags(),傳入參數 filter時,會執行到該參數。並成功的將該參數處理後的 tag 加到 user...
昨天我們講了針對 removeTag() 的單元測試 不過,如果我們考慮到針對 updateUsersTags() 的單元測試,我們會發現到一個問題。就是,這個...
我們測試過了幾個案例,像是 測試更新標籤時如過濾Admin,結果應不出現Admin 和 測試更新標籤時如過濾Admin和Author,結果應不出現Admin和A...
上次我們提到,我們只需要實作 filterAdminTag() filterAuthorTag() filterRegistered() fil...
我們好不容易寫了 userAddTag() 和 updateUsersTags() 的邏輯,突然又出現了新需求! 這次需求單位希望 updateUsersTag...
隨著我們專案功能的增加,雖然目前只有兩個函數,但是我們的測試函數已經增加了不少。 為了減少我們未來閱讀測試程式的痛苦,也為了提升未來整個專案的可維護度,我們可以...
自動測試時除了檢查加入新資料,有時我們也會希望檢查舊資料是否成功地被移除。 今天我們用一個新的功能,來展示如何針對不應該存在的資料進行檢查。 新功能測試 我們多...
知道什麼是自動測試之後,我們來看看怎麼進行和資料庫互動的自動測試。 測試目標 假設我們現有的資料關聯有 user 和 tag 的多對多關聯 object Use...
用 Exposed 框架進行資料庫操作的基礎,在前面幾天已經基本說明完畢了。如果將前面幾天的內容看熟的話,要滿足資料庫互動的需求已經沒有大問題。 後面我們來談談...
之前我們連線的,一直都是測試用的資料庫。 今天我們來練線 MySQL 資料庫來進行操作。 連線MySQL 目前有不少網站的資料庫實作,是透過 MySQL 資料庫...
前面我們聊到了如何存取資料庫,以及遇到 N+1 問題時該如何發現以及解決問題。 今天我們來談談 Exposed 框架如何非同步的存取資料。 協程 在 Kotli...
前面我們介紹了透過 DAO 取出資料的許多方式,包含了一對多關聯,多對多關聯,甚至包含到 Parent-Child reference 的做法。 今天我們來介紹...
之前我們看過了透過 DAO 方式,來處理資料之間呈現一對多關聯,或者多對多關聯的做法。 今天我們來看看,如果資料是呈現 Parent-Child referen...
除了一對多的關聯方式以外,資料和資料間也有可能是多對多的關聯方式。 比方說常見的用戶標籤(tag) 系統,就是一種多對多的關聯:每個標籤可能對應多個用戶,而每個...
透過 DAO 方式存取資料,除了用傳統的 join 方式處理資料表之間的關聯外,也可以直接從物件之間的關聯來思考。 下面我們來介紹 DAO 物件之間的關聯如何設...
昨天我們看過了使用 Kotlin DAO 進行資料庫 CRUD 的方式。 今天我們來看看,除了基本的 CRUD,我們透過 DAO 還有什麼操作資料庫的方式。 排...
除了使用 DSL 的方式和資料庫進行互動之外,我們還可以透過更加物件導向的方式,來和資料庫進行溝通。 以下我們介紹使用 DAO 的方式,來和資料庫進行溝通。 什...
如果只會單一資料表的 CRUD 操作,那麼有很多需求是沒有辦法滿足的。 今天我們來聊聊,怎麼用 DSL 的方式進行其他的操作。 Batch Insert 如果我...
昨天我們成功和資料庫進行了串接,但是我們只建立了一張資料表,還沒有實際的處理資料內容。 今天我們嘗試對資料庫進行基本的 CRUD 操作,也就是常說的建立、讀取、...
安裝 Exposed 框架完成之後,再來我們要和資料庫進行串接。 首先我們將原本的 main(){} 改成 fun main() { Database....
Kotlin 專案建立完成之後,再來就是安裝 Exposed 框架了。畢竟這是這系列文章的重頭戲嘛! 如果我們嘗試在尚未安裝時,在 main.kt 開頭輸入這兩...
首先,要學怎麼使用 Kotlin Exposed 框架,我們先來建立一個 Kotlin 專案,並透過這個專案來搭配 Exposed 框架,進而操作資料庫。 In...
大家好!這三十天,我們這系列文章會介紹 Kotlin Exposed 這個框架,並且和大家談怎麼利用這個框架與資料庫進行串接。 什麼?Kotlin 也可以串接資...